#include "SeguidorDeEntidad.h"

SeguidorDeEntidad::SeguidorDeEntidad(VistaDeMapa* _vista_de_mapa)
{
	vista_de_mapa = _vista_de_mapa;
	siguiendo = false;
}

SeguidorDeEntidad::~SeguidorDeEntidad()
{
	if(siguiendo)
		DejarDeSeguir();
}

void SeguidorDeEntidad::SeguirA(VistaDeEntidad* _vista_de_entidad)
{
	vista_de_entidad = _vista_de_entidad;
	callback_seguidor = Callback<SeguidorDeEntidad>(this,&SeguidorDeEntidad::Actualizar);
	Core::Instancia()->AgregarCallback(&callback_seguidor);
	siguiendo = true;
}

void SeguidorDeEntidad::DejarDeSeguir()
{
	Core::Instancia()->EliminarCallback(&callback_seguidor);
	siguiendo = false;
}

void SeguidorDeEntidad::Actualizar()
{
	Punto centro = vista_de_entidad->PosicionEnElMapa();
	vista_de_mapa->CentrarEn( centro );
}
